

(function(){
	// Personaje: X
	var X = {
		atributos: { id : null, animacion : null, movimiento : null, posx : 0, posy : 0, accion : 0, velocidad : 0 },
		init: function(atributos) {
			this.atributos = $.extend({}, this.atributos, atributos);
			return this;
		},
		// Instanciar: Instancia al personaje (Id, Posicion X, Posicion Y, Accion)
		instanciar: function(id, px, py, velocidad) {
			$("#sc00").html($("#sc00").html() + '<div id="pj'+id+'"></div>');
			// Construyo atributos
			this.atributos.id = id;
			this.atributos.posx = parseInt(px);
			this.atributos.posy = parseInt(py);
			this.atributos.velocidad = parseInt(velocidad);
			/* Atributos CSS */
			$("#pj"+this.atributos.id).css("background-image","url("+pj_x+")");
			$("#pj"+this.atributos.id).css("position","absolute");
			$("#pj"+this.atributos.id).css("width", "64px");
			$("#pj"+this.atributos.id).css("height","64px");
			$("#pj"+this.atributos.id).css("top", this.atributos.posy+"px");
			$("#pj"+this.atributos.id).css("left",this.atributos.posx+"px");
		},
		// Stay: Descanzo - Personaje sin movimiento. (Animación)
		stay: function() {
			// I -> Nueva posicion
			this.atributos.posx = parseInt($("#pj"+this.atributos.id).css('left'));
			// F -> Nueva posición
			var id = this.atributos.id;
			var y = 0;
			// I -> Limpiar movimientos y animaciones
			clearInterval(this.atributos.movimiento);
			clearInterval(this.atributos.animacion);
			// F -> Limpiar movimientos y animaciones
			this.atributos.accion = 0; // Acción desactivada = 0 (Stay)
			this.atributos.animacion = setInterval(function () {
				switch(y) {
					case 0: $("#pj"+id).css('backgroundPosition', ' -65px 0px'); y = 1; break;
					case 1: $("#pj"+id).css('backgroundPosition', '   0px 0px'); y = 2; break;
					case 2: $("#pj"+id).css('backgroundPosition', '-130px 0px'); y = 3; break;
					case 3: $("#pj"+id).css('backgroundPosition', '   0px 0px'); y = 0; break;
				}
			}, 100);
		},
		// Caminar derecha: Movimiento hacia la derecha. (Animación)
		caminar_derecha: function() {
			if(this.atributos.accion == 0) {
				var id = this.atributos.id;
				var posx = this.atributos.posx;
				var y = 0;
				this.atributos.accion = 1; // Acción activada = 1 (Caminar)
				// I -> Limpiar movimientos y animaciones
				clearInterval(this.atributos.movimiento);
				clearInterval(this.atributos.animacion);
				// F -> Limpiar movimientos y animaciones
				// Inversa: Voltear imagen
				$("#pj"+id).removeClass();
				// Movimiento
				this.atributos.movimiento = setInterval(function() {
					posx++;
					$("#pj"+id).css("left",posx+"px");
				}, this.atributos.velocidad);
				// Animación
				this.atributos.animacion = setInterval(function() {
					switch(y) {
						case 0: $("#pj"+id).css('backgroundPosition', '  -0px -65px'); y = 1; break;
						case 1: $("#pj"+id).css('backgroundPosition', ' -65px -65px'); y = 2; break;
						case 2: $("#pj"+id).css('backgroundPosition', '-130px -65px'); y = 3; break;
						case 3: $("#pj"+id).css('backgroundPosition', '-195px -65px'); y = 4; break;
						case 4: $("#pj"+id).css('backgroundPosition', '-260px -65px'); y = 5; break;
						case 5: $("#pj"+id).css('backgroundPosition', '-325px -65px'); y = 6; break;
						case 6: $("#pj"+id).css('backgroundPosition', '-390px -65px'); y = 7; break;
						case 7: $("#pj"+id).css('backgroundPosition', '-455px -65px'); y = 8; break;
						case 8: $("#pj"+id).css('backgroundPosition', '-520px -65px'); y = 9; break;
						case 9: $("#pj"+id).css('backgroundPosition', '-585px -65px'); y = 0; break;
						default: break;
					}
				}, 50);
			}
		},
		// Caminar derecha: Movimiento hacia la derecha. (Animación)
		caminar_izquierda: function() {
			if(this.atributos.accion == 0) {
				var id = this.atributos.id;
				var posx = this.atributos.posx;
				var y = 0;
				this.atributos.accion = 1; // Acción activada = 1 (Caminar)
				// I -> Limpiar movimientos y animaciones
				clearInterval(this.atributos.movimiento);
				clearInterval(this.atributos.animacion);
				// F -> Limpiar movimientos y animaciones
				// Inversa: Voltear imagen
				$("#pj"+id).addClass("in01");
				// Movimiento
				this.atributos.movimiento = setInterval(function() {
					posx--;
					$("#pj"+id).css("left",posx+"px");
				}, this.atributos.velocidad);
				// Animación
				this.atributos.animacion = setInterval(function() {
					switch(y) {
						case 0: $("#pj"+id).css('backgroundPosition', '  -0px -65px'); y = 1; break;
						case 1: $("#pj"+id).css('backgroundPosition', ' -65px -65px'); y = 2; break;
						case 2: $("#pj"+id).css('backgroundPosition', '-130px -65px'); y = 3; break;
						case 3: $("#pj"+id).css('backgroundPosition', '-195px -65px'); y = 4; break;
						case 4: $("#pj"+id).css('backgroundPosition', '-260px -65px'); y = 5; break;
						case 5: $("#pj"+id).css('backgroundPosition', '-325px -65px'); y = 6; break;
						case 6: $("#pj"+id).css('backgroundPosition', '-390px -65px'); y = 7; break;
						case 7: $("#pj"+id).css('backgroundPosition', '-455px -65px'); y = 8; break;
						case 8: $("#pj"+id).css('backgroundPosition', '-520px -65px'); y = 9; break;
						case 9: $("#pj"+id).css('backgroundPosition', '-585px -65px'); y = 0; break;
						default: break;
					}
				}, 50);
			}
		},

	};
	newX = function(atributos) {
		var crear = Object.create(X);
		return crear.init(atributos);
	};
})();

atributos_X = {};